package com.aw.generic.ejemplo005;

import java.util.Iterator;
import java.util.List;

/**
 * User: gmc
 * Date: 17/06/2010
 */
public class ListaUtils {

    public static Object min(List lista){
        Object minimo = lista.get(0);
        for (Object elemento : lista) {
            Comparable comparable = (Comparable) elemento;
            if (comparable.compareTo(minimo)==-1){
                minimo = comparable;
            }
        }
        return minimo;
    }
    //
    public static Object minConGenerics(List<Comparable> lista){
        Object minimo = lista.get(0);
        for (Comparable elemento : lista) {
            if (elemento.compareTo(minimo)==-1){
                minimo = elemento;
            }
        }
        return minimo;
    }

    public static <T extends Comparable> T minConGenerics2(List<T> lista){
        T minimo = lista.get(0);
        for (T elemento : lista) {
            if (elemento.compareTo(minimo)==-1){
                minimo = elemento;
            }
        }
        return minimo;
    }

    public static <T extends Comparable<T>> T minConGenerics3(List<T> lista){
        T minimo = lista.get(0);
        for (T elemento : lista) {
            if (elemento.compareTo(minimo)==-1){
                minimo = elemento;
            }
        }
        return minimo;
    }

    public static <T extends Comparable<? super T>> T minConGenerics4(List<? extends T> lista){
        T minimo = lista.get(0);
        for (T elemento : lista) {
            if (elemento.compareTo(minimo)==-1){
                minimo = elemento;
            }
        }
        return minimo;
    }


}
